Flash memory devices have developed into a popular source of non-volatile memory for a wide range of electronic applications. Flash memory devices typically use a one-transistor memory cell (e.g., floating gate) that allows for high memory densities, high reliability, and low power consumption. Changes in threshold voltage of the cells, through programming of charge storage or trapping layers or other physical phenomena, determine the data value of each cell. Common uses for flash memory and other non-volatile memory include personal computers, personal digital assistants (PDAs), digital cameras, digital media players, digital recorders, games, appliances, vehicles, wireless devices, mobile telephones, and removable memory modules, and the uses for non-volatile memory continue to expand.
Flash memory typically utilizes one of two basic architectures known as NOR Flash and NAND Flash. The designation is derived from the logic used to read the devices. FIG. 1 illustrates a NAND type flash memory array architecture 100 wherein the floating gate memory cells 101 of the memory array are arranged in a matrix of rows and columns. The memory cells 101 of the array are also arranged together in strings, typically of 8, 16, 32, or more each, where the memory cells in a string are connected together in series, source to drain, between a common source line 120 and a data line 122, often referred to as a bit line. The array is then accessed by a row decoder activating a row of floating gate memory cells (e.g., 132-138) by selecting a particular access line (e.g., 130), often referred to as a word line, connected to their gates. In addition, bit lines BL0-BL3 122-128 can also be driven high or low depending on the current operation being performed. As is known to those skilled in the art, the number of word lines and bit lines might be much greater than those shown in FIG. 1.
Bit lines BL0-BL3 122-128 are coupled to sensing devices (e.g., sense amplifiers) 140-146 that detect the state of each cell by sensing current on a particular bit line 122-128. The word lines WL7-WL0 104-116 and 130 select the individual memory cells 101 in the series strings to be written to or read from and operate the remaining memory cells in each series string in a pass through mode. Each series string of memory cells is coupled to a source line 120 by a source select gate 150 and to an individual bit line BL0 122 by a drain select gate 148, for example. The source select gates, such as 150, are controlled by a source select gate control line SG(S) 118 coupled to their control gates. The drain select gates, such as 148, are controlled by a drain select gate control line SG(D) 102.
As the performance and complexity of electronic systems increases, the requirement for additional memory in systems also increases. However, in order to continue to reduce the costs of the system, it is desirable to keep the parts count low. This can be accomplished by increasing the memory density of an integrated circuit by using such technologies as multilevel cells (MLC). For example, MLC NAND flash memory is a cost effective non-volatile memory.
Multilevel memory cells assign a data state (e.g., as represented by a bit pattern) to a specific range of threshold voltages (Vt) stored on the memory cell. Single level memory cells (SLC) permit the storage of a single binary digit (e.g., bit) of data on each memory cell. Meanwhile, MLC technology permits the storage of two or more binary digits per cell (e.g., 2, 4, 8, 16 bits), depending on the quantity of threshold voltage ranges assigned to the cell and the stability of the assigned threshold voltage ranges during the lifetime operation of the memory cell. The number of threshold voltage ranges, which are sometimes referred to as Vt distribution windows, used to represent a bit pattern comprised of N-bits is 2N. For example, one bit may be represented by two ranges, two bits by four ranges, three bits by eight ranges, etc. Some memory cells can store fractional numbers of bits, such as 1.5 bits per cell. A common naming convention is to refer to SLC memory as MLC(two level) memory as SLC memory utilizes two data states in order to store one bit of data as represented by a 0 or a 1, for example. MLC memory configured to store two bits of data can be represented by MLC(four level), three bits of data by MLC(eight level), etc. An MLC(four level) memory cell is typically referred to as a lower density memory cell than an MLC(eight level) memory due to the lower number of bits stored per memory cell, for example. SLC (e.g., MLC(two level)) is typically referred to as a lower density memory than MLC(four level) memory and so on.
FIG. 2 illustrates an example of a Vt distribution 200 for a MLC(four-level) memory cell. For example, a cell may be programmed to a Vt that falls within one of four different voltage ranges 202-208 of 200 mV, each being used to represent a data state corresponding to a bit pattern comprised of two bits. Typically, a dead space 210 (which is sometimes referred to as a margin) of 0.2V to 0.4V is maintained between each range to keep the ranges from overlapping. As one example, if the voltage stored on the cell is within the Vt range 202, the cell in this case is storing a logical ‘11’ state and is typically considered the erased state of the cell. If the voltage is within the Vt range 204, the cell in this case is storing a logical ‘01’ state. A voltage in the range 206 of the four Vt ranges would indicate that the cell in this case is storing a logical ‘00’ state. Finally, a Vt residing in the Vt range 208 indicates that a logical ‘10’ state is stored in the cell.
During a typical programming operation of memory cells (e.g. a block) with user data, some additional memory cells (referred to herein as “reference cells”) are programmed to a known one of the potential data states, which will be referred to herein as a reference state (e.g., a known threshold voltage.) Over time, the threshold voltages programmed in memory cells, including the reference cells, may shift (e.g., drift) by some amount. Thus, due to their proximity it is assumed that the amount of drift in a reference cell is similar to the amount of drift in a memory cell storing user data. A determination of how much drift has occurred can be made by comparing the known threshold voltage programmed into the reference cell with the threshold voltage actually read from the reference cell. Typically these reference memory cells are arranged such that a complete string comprises memory cells which are all programmed to the same reference state. Additional strings comprise memory cells all programmed to a second reference state, etc. This reference level state scheme continues for each possible data state of user data cells. For example, strings of reference cells would be programmed to each of the data states illustrated in FIG. 2 (corresponding to ranges 202-208) in the case of an array of MLC(four level) memory cells. Once the drift of the reference cells has been determined, this amount of drift can then be applied to the values read from the memory cells storing user data. However, an issue with utilizing this method of determining drift in reference cells is that memory cells which are programmed as reference cells cannot be used as memory cells to store user data. This reduces the user data capacity of the memory array.
For the reasons stated above, and for other reasons which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art, for example, to reduce the number of memory cells programmed as reference cells in a memory device.